package Project2.cs342.project1.mathNotebook.expressions;

import Project2.cs342.project1.mathNotebook.expressions.exceptions.UncapturedVariableException;

public interface Visitor {

    public abstract Object visit(Expr exp);

    public abstract Object visit(AddExpr exp)
	    throws UncapturedVariableException;

    public abstract Object visit(SubExpr exp)
	    throws UncapturedVariableException;

    public abstract Object visit(MultExpr exp)
	    throws UncapturedVariableException;

    public abstract Object visit(DivExpr exp)
	    throws UncapturedVariableException;

    public abstract Object visit(NegExpr exp)
	    throws UncapturedVariableException;

    public abstract Object visit(SinExpr exp)
	    throws UncapturedVariableException;

    public abstract Object visit(CosExpr exp)
	    throws UncapturedVariableException;

    public abstract Object visit(TanExpr exp)
	    throws UncapturedVariableException;

    public abstract Object visit(VarExpr exp)
	    throws UncapturedVariableException;

    public abstract Object visit(LiteralExpr exp)
	    throws UncapturedVariableException;

    public abstract Object visit(PowExpr exp)
	    throws UncapturedVariableException;
}